//////////////////////////////////////////////////////////////////////////
//
// GAM203
// Timer
// Timer.h
// 
// Grant Johnson
// Qantm College
// 27/10/2010
//
//////////////////////////////////////////////////////////////////////////

#ifndef TIMER_H
#define TIMER_H

#include <windows.h>

class Timer
{
public:
	Timer();
	~Timer()
	{
	}

	//////////////////////////////////////////////////////////////////////////
	// Reset the timer
	//
	// Paramaters:
	// None
	//
	// Returns void
	//
	//////////////////////////////////////////////////////////////////////////
	void Reset();

	//////////////////////////////////////////////////////////////////////////
	// Get the time
	//
	// Paramaters:
	// None
	//
	// Returns the current time elapsed since the program started
	//
	//////////////////////////////////////////////////////////////////////////
	float GetTime();

	//////////////////////////////////////////////////////////////////////////
	// Get the delta time
	//
	// Paramaters:
	// None
	//
	// Returns the current delta time in seconds
	//
	//////////////////////////////////////////////////////////////////////////
	float GetFrameTime();

private:
	LARGE_INTEGER m_freq;
	//Starting time
	LARGE_INTEGER m_baseTime;

	//The current time elapsed
	float m_curTime;

	//The previous time elapsed
	float m_prevTime;

	//The delta time, calculated by current time - previous time
	float m_deltaTime;
};

#endif //TIMER_H